package noticias.activity;

import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.text.Html;
import android.text.Spanned;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import noticias.modelo.Noticia;
import noticias.rest.RequestMethod;
import noticias.rest.RestClient;
import noticias.util.Constantes;

public class CategoriaTodas extends Activity implements OnClickListener {

	ImageButton btnInicio;
	
	private ArrayList<Noticia> noticias = new ArrayList<Noticia>();

	public void onCreate(Bundle savedInstanceState) {		
		super.onCreate(savedInstanceState);
		this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.categoria_todas);

		btnInicio = (ImageButton) findViewById(R.id.btnInicio);
		btnInicio.setOnClickListener(this);		
		
		/*
		 * Cliente para el Servicio REST
		 */
		try {
			RestClient cliente = new RestClient(Constantes.URLRest + "?usuario=102030&clave=tecsup00&modulo=noticias&accion=listar_noticias&codCategoria=503");			
			cliente.Execute(RequestMethod.GET);
			String jsontext = cliente.getResponse();
			
			
			// Recuperar un arreglo de objetos JSON
			JSONArray entries = new JSONArray(jsontext);

			int i = 0;
			for (i = 0; i < entries.length(); i++) {
				JSONObject post = entries.getJSONObject(i);
				Noticia p = new Noticia();
				p.setCodNoticia(post.getInt("codNoticia"));
				p.setTitulo(post.getString("titulo"));
				noticias.add(p);
			}
		} catch (Exception e) {
			Log.i("CategoriaTodas", e.getMessage());
		}
		/*
		 * Fin del Cliente para el Servicio REST
		 */
		
		// Armando el GridView
		final ListView gvMensajes = (ListView) findViewById(R.id.list);
		MensajesAdaptador adapter = new MensajesAdaptador(this);
		gvMensajes.setAdapter(adapter);
		
		gvMensajes.setOnItemClickListener(new OnItemClickListener() {				
	        public void onItemClick(AdapterView parent, View v, int position, long id) {
	        	Log.i("CategoriaTodas", "Dentro de onItemClick..");		        		
	        	//abrirPopUp();
	        	Intent i = new Intent(CategoriaTodas.this, DetalleNoticia.class);
	        	startActivity(i);
	        	
	    }});
	}

	public void onClick(View v) {

		if (v == btnInicio) {
			Intent i = new Intent(CategoriaTodas.this, NoticiasActivity.class);
			startActivity(i);
			}
	}
	
		
		
	/*
	 * Adaptador para el GridView 
	 */
	public class MensajesAdaptador extends BaseAdapter {
		
		private Context mContext;

		public MensajesAdaptador(Context c){
			mContext = c;	
		}

		public int getCount() {
			return noticias.size();
		}

		public Object getItem(int arg0) {
			return noticias.get(arg0);
		}

		public long getItemId(int arg0) {
			return 0;
		}

		public View getView(int position, View convertView, ViewGroup parent) {		
			int cont = position;
			TextView v = new TextView(mContext);
			Noticia x = (Noticia)noticias.get(position);			
			v.setText(++cont + ") " + x.getTitulo());
			v.setId(x.getCodNoticia());
	        return v;
		}
	}
	
}
